package com.ruoyi.system.service.impl;

import java.util.List;

import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.core.domain.entity.SysMiniUser;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.domain.bo.ApiSysMiniUserBo;
import com.ruoyi.system.domain.vo.ApiSysMiniUserVo;
import com.ruoyi.system.domain.vo.MemberExportExcelVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.SysMiniUserMapper;
import com.ruoyi.system.service.ISysMiniUserService;

/**
 * 小程序用户Service业务层处理
 * 
 * @author ruoyi
 * @date 2022-01-23
 */
@Service
public class SysMiniUserServiceImpl implements ISysMiniUserService 
{
    @Autowired
    private SysMiniUserMapper sysMiniUserMapper;

    /**
     * 查询小程序用户
     * 
     * @param miniUserId 小程序用户主键
     * @return 小程序用户
     */
    @Override
    public SysMiniUser selectSysMiniUserByMiniUserId(Long miniUserId)
    {
        return sysMiniUserMapper.selectSysMiniUserByMiniUserId(miniUserId);
    }

    /**
     * 查询小程序用户列表
     * 
     * @param sysMiniUser 小程序用户
     * @return 小程序用户
     */
    @Override
    public List<SysMiniUser> selectSysMiniUserList(SysMiniUser sysMiniUser)
    {
        return sysMiniUserMapper.selectSysMiniUserList(sysMiniUser);
    }

    /**
     * 新增小程序用户
     * 
     * @param sysMiniUser 小程序用户
     * @return 结果
     */
    @Override
    public int insertSysMiniUser(SysMiniUser sysMiniUser)
    {
        sysMiniUser.setCreateTime(DateUtils.getNowDate());
        return sysMiniUserMapper.insertSysMiniUser(sysMiniUser);
    }

    /**
     * 修改小程序用户
     * 
     * @param sysMiniUser 小程序用户
     * @return 结果
     */
    @Override
    public int updateSysMiniUser(SysMiniUser sysMiniUser)
    {
        sysMiniUser.setUpdateTime(DateUtils.getNowDate());
        return sysMiniUserMapper.updateSysMiniUser(sysMiniUser);
    }

    /**
     * 批量删除小程序用户
     * 
     * @param miniUserIds 需要删除的小程序用户主键
     * @return 结果
     */
    @Override
    public int deleteSysMiniUserByMiniUserIds(Long[] miniUserIds)
    {
        return sysMiniUserMapper.deleteSysMiniUserByMiniUserIds(miniUserIds);
    }

    /**
     * 删除小程序用户信息
     * 
     * @param miniUserId 小程序用户主键
     * @return 结果
     */
    @Override
    public int deleteSysMiniUserByMiniUserId(Long miniUserId)
    {
        return sysMiniUserMapper.deleteSysMiniUserByMiniUserId(miniUserId);
    }

    @Override
    public SysMiniUser selectSysMiniUserByOpenId(String openid) {
        return sysMiniUserMapper.selectSysMiniUserByOpenId(openid);
    }

    @Override
    public SysMiniUser selectSysMiniUserByJobNumber(String jobNumber) {
        return sysMiniUserMapper.selectSysMiniUserByJobNumber(jobNumber);
    }

    @Override
    public SysMiniUser selectSysMiniUserByJobNumberAndRealName(String jobNumber, String realName) {
        return sysMiniUserMapper.selectSysMiniUserByJobNumberAndRealName(jobNumber,realName);
    }

    @Override
    public SysMiniUser selectSysMiniUserByTel(String tel) {
        return sysMiniUserMapper.selectSysMiniUserByTel(tel);
    }

    /**
     * 会员查询
     * @param sysMiniUser
     * @return
     */
    @Override
    @DataScope(deptAlias = "mu")
    public List<SysMiniUser> selectMemberList(SysMiniUser sysMiniUser) {
        return sysMiniUserMapper.selectMemberList(sysMiniUser);
    }

    @Override
    public List<ApiSysMiniUserVo> getMemberListNoDataScope(ApiSysMiniUserBo bo) {
        return sysMiniUserMapper.getMemberListNoDataScope(bo);
    }

    @Override
    @DataScope(deptAlias = "mu")
    public List<MemberExportExcelVO> exportMember(SysMiniUser sysMiniUser) {
        return sysMiniUserMapper.exportMember(sysMiniUser);
    }

    @Override
    @DataScope(deptAlias = "mu")
    public Integer selectMemberNum(SysMiniUser sysMiniUser) {
        return sysMiniUserMapper.selectMemberNum(sysMiniUser);
    }

    /**
     * 变为非会员 单位设置为空
     * @param sysMiniUser
     */
    @Override
    public void updateNoMember(SysMiniUser sysMiniUser) {
        sysMiniUser.setUpdateTime(DateUtils.getNowDate());
        sysMiniUserMapper.updateNoMember(sysMiniUser);
    }

    @Override
    public List<SysMiniUser> getNomeberByType(String type) {
        return sysMiniUserMapper.getNomeberByType(type);
    }
}
